# sep 设定分割符。
# end 默认是换行可以打印到一行
# print(1, 2, 3, sep='|')
# print(1, 2, end=' ')
# print(3, 4)
# f = open('log','w',encoding='utf-8')
# # f.write('写入文件')
# print('写入文件', file=f)

# list
# l1 = list('fdsafd')
# print(l1)

# dict
# 创建字典的几种方式
# dic = {1: 2}
# # 字典推导式
# # print({i: 1 for i in range(3)})
# # dict()
# dic = dict(one=1, two=2, three=3)
# print(dic)
# # fromkeys()

# abs()  获取绝对值
# print(abs(-10))

# sum() 数字相加求和
# sum(iterable,)
# print(sum([1,2,3,4]))
# print(sum([1, 2, 3, 4], 100))

# 非常非常非常重要的

# min 可以加功能
# print(min([22, 11, 45, 2]))
l1 = [('alex', 73, 170), ('太白', 18, 185), ('武大', 35, 159),]
# # l1 = [(73, 'alex'), (35, '武大'), (18, '太白')]
# # 找年龄最小的元组
# # print(min(l1))
# # 通过设置key去使用min
# # key = 函数名
# # def func(x):  # x = ('alex', 73)
# #     return x[1]
#
# # 返回值是什么就按照什么比较最小的。
# # min 会自动的将可迭代对象的每一个元素作为实参传给x，
'''
第一次，x = ('alex', 73)   73
第二次，x = ('武大', 35)   35
第三次，x = ('太白', 18)   18
'''
# 将遍历的那个元素即是 ('太白', 18) 返回
# print(min(l1,key=func))
# print(min(l1,key=lambda x: x[1]))

# def func(x):
#     return x[1]

# print(min(l1,key=func))
# print(min(l1,key=lambda x: x[1]))
# print(min(l1,key=lambda x: x[2])[0])





a = 1
# 练习：
dic = {'a':3,'b':2,'c':1}
# 将dic值最小的键返回。
# print(min(dic,key= lambda x:dic[x]))
# # 将dic值最小的值返回。
# print(dic[min(dic,key= lambda x:dic[x])])

# dic = {'A':['李业', 67],'b': ['怼哥', 95],'c': ['冯垚', 85]}
#
# # 将成绩最低的从属于的那个列表返回。
# print(dic[min(dic,key=lambda x:dic[x][1])])
# # 将成绩最低的分数返回。
# print(dic[min(dic,key=lambda x:dic[x][1])][1])

# max() 与min 相同。

# reversed()  对一个可迭代对象进行翻转，返回一个迭代器

# s1 = 'alex'
# # print(reversed(s1))
# for i in reversed(s1):
#     print(i)

# 内置函数：bytes()
s1 = '太白'
# 方法一：
# print(s1.encode('utf-8'))
# 方法二：
# print(bytes(s1,encoding='utf-8'))

# 解码：
# b1 = b'\xe5\xa4\xaa\xe7\x99\xbd'
# # 方法一：
# # print(b1.decode('utf-8'))
# # 方法二：
# print(str(b1, encoding='utf-8'))


